{"componentChunkName":"component---node-modules-gatsby-theme-garden-src-templates-local-file-js","path":"/Raspberry Pi 3 B+ 서버 세팅 (3)","result":{"data":{"file":{"childMdx":{"body":"var _excluded = [\"components\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {\n  \"title\": \"Raspberry Pi 3 B+ 서버 세팅 (3)\",\n  \"author\": \"vlwkaos\",\n  \"created\": \"2021-08-24:23:10:43\"\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", null, \"Raspberry Pi 3 B+ \\uC11C\\uBC84 \\uC138\\uD305 (3)\"), mdx(\"h2\", null, \"node.js \\uC124\\uCE58\"), mdx(\"p\", null, \"Node.js 11 \\uBC84\\uC804\\uC744 \\uC124\\uCE58\\uD558\\uAE30 \\uC704\\uD574 \\uB2E4\\uC74C \\uCEE4\\uB9E8\\uB4DC\\uB97C \\uC785\\uB825\\uD55C\\uB2E4.  \"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"sudo apt-get update\\ncurl -sL https://deb.nodesource.com/setup_11.x | bash -\\nsudo apt-get install -y nodejs\\n\")), mdx(\"p\", null, \"node.js \\uC640 npm\\uC774 \\uC81C\\uB300\\uB85C \\uC124\\uCE58\\uB418\\uC5C8\\uB294\\uC9C0 \\uD655\\uC778\\uD558\\uAE30 \\uC704\\uD574\\uC11C \\uB2E4\\uC74C \\uCEE4\\uB9E8\\uB4DC\\uB97C \\uC785\\uB825\\uD55C\\uB2E4.\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"node -v\\nnpm -v\\n\")), mdx(\"h2\", null, \"PM2 \\uC124\\uCE58\"), mdx(\"p\", null, \"\\uB178\\uB4DC \\uC571\\uC744 \\uC5EC\\uB7EC \\uAC1C \\uC2E4\\uD589\\uD558\\uAE30 \\uC704\\uD574, \\uADF8\\uB9AC\\uACE0 \\uBC31\\uADF8\\uB77C\\uC6B4\\uB4DC\\uC5D0 \\uC571\\uC744 \\uC0C1\\uC8FC\\uC2DC\\uD0A4\\uAE30 \\uC704\\uD574\\uC11C\\uB294 \", mdx(\"a\", {\n    parentName: \"p\",\n    \"href\": \"http://pm2.keymetrics.io/\"\n  }, \"PM2\"), \"\\uB97C \\uC774\\uC6A9\\uD574\\uC57C \\uD55C\\uB2E4. \\uB2E4\\uC74C \\uCEE4\\uB9E8\\uB4DC\\uB85C \\uC124\\uCE58\\uD558\\uC790: \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"sudo npm install -g pm2\")), mdx(\"p\", null, \"\\uC774\\uC81C \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"pm2 start server.js\"), \" \\uC640 \\uAC19\\uC740 \\uCEE4\\uB9E8\\uB4DC\\uB85C nodejs \\uC571\\uC744 \\uC5EC\\uB7EC \\uAC1C \\uC2E4\\uD589\\uD560 \\uC218 \\uC788\\uB2E4. PM2\\uB294 \\uC571\\uC774 \\uAC11\\uC790\\uAE30 \\uC8FD\\uC744 \\uACBD\\uC6B0 \\uC7AC\\uC2DC\\uC791\\uD574\\uC8FC\\uB294 \\uAE30\\uB2A5\\uB3C4 \\uC788\\uB2E4. \\uBD80\\uD305 \\uC2DC\\uC5D0 \\uC790\\uB3D9\\uC73C\\uB85C \\uCF1C\\uC9C0\\uAC8C \\uD558\\uACE0\\uD504\\uAE30 \\uB54C\\uBB38\\uC5D0 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"pm2 startup systemd\"), \" \\uCEE4\\uB9E8\\uB4DC\\uB97C \\uC785\\uB825\\uD588\\uB2E4.\"), mdx(\"p\", null, \"\\uC704\\uC758 \\uCEE4\\uB9E8\\uB4DC\\uB97C \\uC785\\uB825\\uD558\\uBA74 '\\uC2DC\\uC791 \\uC124\\uC815\\uC744 \\uD558\\uACE0 \\uC2F6\\uC73C\\uBA74 \\uB2E4\\uC74C \\uCEE4\\uB9E8\\uB4DC\\uB97C \\uC785\\uB825'\\uD558\\uB77C\\uACE0 \\uD558\\uBA74\\uC11C \\uBB54\\uAC00\\uB97C \\uB358\\uC9C4\\uB2E4. \\uADF8\\uAC78 \\uADF8\\uB300\\uB85C \\uBCF5\\uC0AC\\uD574\\uC11C \\uC785\\uB825\\uD574\\uC8FC\\uC790. \\uADF8\\uB7EC\\uBA74 \\uBD80\\uD305 \\uC2DC PM2 \\uC2DC\\uC791 \\uC124\\uC815\\uC774 \\uB41C \\uAC83\\uC774\\uB2E4. \\uADF8\\uB7F0\\uB370 \\uB0B4\\uAC00 \\uCF1C\\uACE0 \\uC2F6\\uC740 \\uC571\\uC774 \\uBB54\\uC9C0 \\uC544\\uC9C1 \\uC9C0\\uC815\\uC744 \\uC548\\uD588\\uB2E4\\uB77C\\uB294 \\uC0DD\\uAC01\\uC774 \\uB4E4 \\uAC83\\uC774\\uB2E4. PM2\\uB294 \\uB364\\uD504\\uC5D0\\uC11C \\uD655\\uC778 \\uAC00\\uB2A5\\uD55C \\uC571 \\uBAA9\\uB85D\\uC744 \\uC774\\uC6A9\\uD574 \\uC704\\uC758 \\uAE30\\uB2A5\\uC744 \\uC218\\uD589\\uD55C\\uB2E4.\"), mdx(\"p\", null, \"\\uB364\\uD504\\uD30C\\uC77C\\uC744 \\uB9CC\\uB4DC\\uB294 \\uAC74 \\uAC04\\uB2E8\\uD558\\uB2E4. \\uBD80\\uD305 \\uC2DC \\uCF1C\\uACE0 \\uC2F6\\uC740 node.js \\uC571\\uB4E4\\uC744 PM2\\uB97C \\uC774\\uC6A9\\uD558\\uC5EC \\uC2DC\\uC791\\uD574\\uC900\\uB2E4. \\uADF8 \\uD6C4\\uC5D0 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"pm2 save\"), \" \\uB97C \\uC785\\uB825\\uD558\\uAE30\\uB9CC \\uD558\\uBA74 \\uB41C\\uB2E4.\"), mdx(\"p\", null, \"\\uB9C8\\uC9C0\\uB9C9\\uC73C\\uB85C  \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"pm2 list\"), \", \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"pm2 status\"), \", \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"pm2 show\"), \" \\uCEE4\\uB9E8\\uB4DC\\uB97C \\uC785\\uB825\\uD558\\uBA74 \\uD604\\uC7AC \\uC2E4\\uD589 \\uC911\\uC778 \\uC571\\uC758 \\uC0C1\\uD0DC\\uB97C \\uD655\\uC778\\uD560 \\uC218 \\uC788\\uB2E4.\"), mdx(\"h2\", null, \"Nginx \\uC124\\uCE58\"), mdx(\"p\", null, \"Nginx \\uB294 Reverse Proxy \\uC11C\\uBE44\\uC2A4\\uC774\\uB2E4. Nginx\\uB97C \\uC774\\uC6A9\\uD558\\uBA74 \\uD558\\uB098\\uC758 \\uC11C\\uBC84\\uB85C \\uB2E4\\uC218\\uC758 \\uC11C\\uBC84\\uB97C \\uC6B4\\uC6A9\\uD558\\uB294 \\uAC83 \\uCC98\\uB7FC \\uC124\\uC815\\uD560 \\uC218 \\uC788\\uB2E4. \\uC27D\\uAC8C \\uB9D0\\uD558\\uBA74 \\uD3EC\\uD2B8\\uD3EC\\uC6CC\\uB529\\uC758 \\uBC18\\uB300\\uC774\\uB2E4. \\uC608\\uB97C \\uB4E4\\uBA74 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"80\"), \"\\uBC88 \\uD3EC\\uD2B8 \\uD558\\uB098\\uB9CC \\uC5F4\\uC5B4 \\uB450\\uACE0 \\uB0B4\\uBD80\\uC5D0\\uC11C \\uC8FC\\uC18C\\uB098 \\uB3C4\\uBA54\\uC778 \\uC774\\uB984\\uC5D0 \\uB530\\uB77C \\uB2E4\\uB978 \\uD3EC\\uD2B8\\uC5D0\\uC11C \\uC11C\\uBE44\\uC2A4\\uD558\\uB294 \\uC6F9 \\uC11C\\uBC84\\uB85C \\uC5F0\\uACB0\\uD574\\uC904 \\uC218 \\uC788\\uB294 \\uAC83\\uC774\\uB2E4. Nginx\\uC758 \\uC774\\uC810\\uC774\\uB77C\\uACE0 \\uD558\\uBA74 \\uC5EC\\uB7EC \\uD3EC\\uD2B8\\uB97C \\uC5F4\\uC5B4\\uB450\\uC9C0 \\uC54A\\uC544\\uB3C4 \\uB418\\uAE30 \\uB54C\\uBB38\\uC5D0 \\uADF8\\uB0E5 \\uC11C\\uBE44\\uC2A4\\uD558\\uB294 \\uAC83\\uBCF4\\uB2E4 \\uD55C \\uCE35\\uC758 \\uBCF4\\uC548\\uC774 \\uB354 \\uC0DD\\uAE34\\uB2E4\\uB294 \\uC810.\"), mdx(\"p\", null, \"\\uC544\\uB798\\uB97C \\uC785\\uB825\\uD558\\uC5EC \\uC124\\uCE58\\uD574\\uC900\\uB2E4.\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"sudo apt update\\nsudo apt install nginx\\n\")), mdx(\"p\", null, \"Nginx\\uB294 \\uC124\\uCE58\\uAC00 \\uB05D\\uB098\\uC790 \\uB9C8\\uC790 \\uBC14\\uB85C \\uC2E4\\uD589 \\uB41C\\uB2E4. \\uB77C\\uC988\\uBCA0\\uB9AC\\uD30C\\uC774\\uC758 IP\\uC8FC\\uC18C\\uB97C \\uBE0C\\uB77C\\uC6B0\\uC800\\uC5D0 \\uCE58\\uACE0 \\uB4E4\\uC5B4\\uAC00 \\uBCF4\\uBA74 \\uC6F0\\uCEF4 \\uD398\\uC774\\uC9C0\\uAC00 \\uB72C\\uB2E4. \\uC5F4\\uB824\\uC788\\uB294 \\uD3EC\\uD2B8\\uC758 \\uAE30\\uBCF8\\uAC12\\uC774 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"80\"), \"\\uC774\\uAE30 \\uB54C\\uBB38\\uC5D0 \\uC544\\uBB34 \\uC124\\uC815\\uC744 \\uD558\\uC9C0 \\uC54A\\uC544\\uB3C4 \\uB728\\uB294 \\uAC83\\uC774\\uB2E4.\"), mdx(\"p\", null, \"\\uADF8\\uB7F0\\uB370 \\uC6F0\\uCEF4 \\uD398\\uC774\\uC9C0 \\uB300\\uC2E0\\uC5D0 \\uB0B4\\uAC00 \\uC6D0\\uD558\\uB294 \\uC571\\uC744 \\uB744\\uC6B0\\uACE0 \\uC2F6\\uC73C\\uB2C8\\uAE4C \\uC124\\uC815\\uC744 \\uD574\\uC918\\uC57C \\uB41C\\uB2E4. \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"/etc/nginx/sites-available/default\"), \"  \\uD30C\\uC77C\\uC744 \\uC218\\uC815 \\uD574\\uC57C\\uB41C\\uB2E4. \\uB300\\uBD80\\uBD84\\uC758 \\uC124\\uC815\\uC740 \\uC5EC\\uAE30\\uC11C \\uD55C\\uB2E4\\uACE0 \\uBCF4\\uBA74 \\uB41C\\uB2E4. \\uACBD\\uB85C\\uB97C \\uC678\\uC6CC\\uB450\\uC790.  \\uB0B4\\uC6A9\\uC744 \\uC0B4\\uD3B4\\uBCF4\\uBA74 server \\uC139\\uC158\\uC5D0 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"location / { ... }\"), \" \\uC774\\uB7F0 \\uBD80\\uBD84\\uC774 \\uC788\\uC744 \\uAC83\\uC774\\uB2E4. \\uAD04\\uD638 \\uC548\\uC5D0 \\uB2E4\\uC74C\\uC73C\\uB85C \\uCC44\\uC6B0\\uC790.\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"proxy_pass http://localhost:3000;\\nproxy_http_version 1.1;\\nproxy_set_header Upgrade $http_upgrade;\\nproxy_set_header Connection 'upgrade';\\nproxy_set_header Host $host;\\nproxy_cache_bypass $http_upgrade;\\n\")), mdx(\"p\", null, \"\\uC774\\uAC83\\uC740  \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"80\"), \"\\uBC88 \\uD3EC\\uD2B8\\uB97C \\uB4E3\\uACE0\\uC788\\uB294 \\uC11C\\uBC84\\uC5D0 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"/\"), \" \\uB77C\\uB294 \\uD558\\uC704\\uC8FC\\uC18C\\uB85C \\uC694\\uCCAD\\uC774 \\uB4E4\\uC5B4\\uC624\\uBA74 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"3000\"), \" \\uBC88 \\uD3EC\\uD2B8\\uB97C \\uC0AC\\uC6A9\\uD558\\uB294 \\uC571\\uC73C\\uB85C \\uC5F0\\uACB0\\uC2DC\\uD0A4\\uB77C\\uB294 \\uC124\\uC815\\uC774\\uB2E4.\"), mdx(\"p\", null, mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"sudo nginx -t\"), \" \\uB85C \\uC774\\uC0C1\\uC774 \\uC5C6\\uB294\\uC9C0 \\uD655\\uC778\\uD55C \\uB4A4 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"sudo systemctl restart nginx\"), \" \\uB85C  Nginx\\uB97C \\uC7AC\\uC2DC\\uC791 \\uD574\\uC8FC\\uC790.\"), mdx(\"p\", null, \"\\uC544\\uB9C8 node.js \\uB098 PM2 \\uB85C \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"3000\"), \"\\uBC88 \\uD3EC\\uD2B8\\uB97C \\uC0AC\\uC6A9\\uD558\\uB294 \\uC571\\uC744 \\uC2E4\\uD589\\uD558\\uBA74 \\uADF8\\uB9AC\\uB85C \\uC811\\uC18D\\uC774 \\uB420 \\uAC83\\uC774\\uB2E4.\"), mdx(\"h2\", null, \"\\uC548\\uC804\\uD55C https \\uC5F0\\uACB0\"), mdx(\"p\", null, \"\\uBBFC\\uAC10\\uD55C \\uAC1C\\uC778 \\uC815\\uBCF4\\uAC00 \\uD3EC\\uD568\\uB41C \\uC704\\uD0A4\\uB97C \\uD638\\uC2A4\\uD305 \\uD55C\\uB2E4\\uBA74 \\uC554\\uD638\\uD654 \\uC5C6\\uC774 \\uACF5\\uAC1C \\uB124\\uD2B8\\uC6CC\\uD06C\\uC5D0\\uC11C \\uC811\\uC18D\\uD558\\uAE30\\uAC00 \\uAEBC\\uB824\\uC9C8 \\uC218 \\uBC16\\uC5D0 \\uC5C6\\uB2E4. \\uADF8\\uB7EC\\uB2C8\\uAE4C \\uC6B0\\uB9AC\\uB294 SSL\\uC744 \\uD1B5\\uD55C \\uC548\\uC804\\uD55C \\uC811\\uC18D\\uC744 \\uD558\\uACE0\\uC2F6\\uB2E4.\"), mdx(\"p\", null, \"\\uC5EC\\uAE30\\uC11C\\uB294 SSL\\uC744 \\uBC1B\\uB294 \\uC81C\\uC77C \\uAC04\\uB2E8\\uD55C \\uBC29\\uBC95\\uC744 \\uC774\\uC6A9\\uD560 \\uAC83\\uC774\\uB2E4. \\uBC14\\uB85C (\\uACFC\\uAC70 let's encrypt) dehydrate\\uB97C \\uC774\\uC6A9\\uD558\\uB294 \\uBC29\\uBC95\\uC774\\uB2E4.\"), mdx(\"p\", null, \"\\uBA3C\\uC800 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"git clone https://github.com/lukas2511/dehydrated.git\"), \" \\uB85C dehydrate\\uB97C \\uB2E4\\uC6B4\\uBC1B\\uB294\\uB2E4. \\uBC1B\\uACE0\\uB098\\uC11C dehydrate \\uD3F4\\uB354\\uB85C \\uB4E4\\uC5B4\\uAC00 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"domains.txt\"), \" \\uD30C\\uC77C\\uC744 \\uC548\\uC5D0 \\uB9CC\\uB4E4\\uACE0 \\uB0B4\\uC6A9\\uBB3C\\uC5D0\\uB294 \\uC548\\uC804\\uD55C \\uC5F0\\uACB0\\uC744 \\uC2DC\\uB3C4\\uD560 \\uB3C4\\uBA54\\uC778 \\uC8FC\\uC18C\\uB97C \\uC801\\uB294\\uB2E4. \\uC608\\uB97C \\uB4E4\\uC790\\uBA74 \\uB098\\uB294 \\uC544\\uC9C1 \\uB3C4\\uBA54\\uC778 \\uC8FC\\uC18C\\uB97C \\uB530\\uB85C \\uC124\\uC815\\uD558\\uC9C0 \\uC54A\\uC558\\uAE30 \\uB54C\\uBB38\\uC5D0 \\uC774\\uC804\\uC758 \\uAE00\\uC5D0\\uC11C duckdns\\uB85C \\uB9CC\\uB4E0 ddns \\uC8FC\\uC18C\\uB9CC \\uAC16\\uACE0\\uC788\\uB2E4. \\uADF8\\uAC78 (\\uC608: \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"example.duckdns.org\"), \") \\uB123\\uACE0 \\uC800\\uC7A5\\uD560 \\uAC83\\uC774\\uB2E4. \\uAC19\\uC740 \\uC778\\uC99D\\uC11C\\uB97C \\uC0AC\\uC6A9\\uD558\\uB294 \\uC6F9\\uC0AC\\uC774\\uD2B8\\uC758 \\uB3C4\\uBA54\\uC778\\uC744 \\uB354 \\uCD94\\uAC00 \\uD558\\uACE0 \\uC2F6\\uB2E4\\uBA74 \\uB744\\uC5B4\\uC4F0\\uAE30\\uB97C \\uD55C \\uD6C4 \\uB354 \\uCD94\\uAC00\\uD558\\uBA74 \\uB41C\\uB2E4.\"), mdx(\"p\", null, \"\\uADF8\\uB9AC\\uACE0 \", mdx(\"inlineCode\", {\n    parentName: \"p\"\n  }, \"config\"), \" \\uB77C\\uB294 \\uD30C\\uC77C\\uB3C4 \\uD544\\uC694\\uD558\\uB2E4. \\uC5C6\\uC73C\\uBA74 \\uB9CC\\uB4E4\\uACE0 \\uC788\\uC73C\\uBA74 \\uD30C\\uC77C\\uC744 \\uC5F4\\uACE0 \\uB2E4\\uC74C \\uB0B4\\uC6A9\\uC774 \\uD3EC\\uD568\\uB418\\uB3C4\\uB85D \\uC218\\uC815\\uD55C\\uB2E4.\"), mdx(\"pre\", null, mdx(\"code\", {\n    parentName: \"pre\"\n  }, \"# Which challenge should be used? Currently http-01 and dns-01 are supported\\nCHALLENGETYPE=\\\"dns-01\\\"\\n\\n# Script to execute the DNS challenge and run after cert generation\\nHOOK=\\\"${BASEDIR}/hook.sh\\\"\\n\")), mdx(\"h2\", null, \"PM2\\uC5D0\\uC11C Tiddlywiki \\uC2E4\\uD589\\uD558\\uAE30\"), mdx(\"p\", null, \"WIP\"));\n}\n;\nMDXContent.isMDXComponent = true;","outboundReferences":[],"inboundReferences":[{"__typename":"Mdx","body":"var _excluded = [\"components\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* @jsxRuntime classic */\n/* @jsx mdx */\n\nvar _frontmatter = {\n  \"title\": \"Raspberry Pi\",\n  \"author\": \"vlwkaos\",\n  \"created\": \"2021-08-24:23:09:22\"\n};\nvar layoutProps = {\n  _frontmatter: _frontmatter\n};\nvar MDXLayout = \"wrapper\";\nreturn function MDXContent(_ref) {\n  var components = _ref.components,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return mdx(MDXLayout, _extends({}, layoutProps, props, {\n    components: components,\n    mdxType: \"MDXLayout\"\n  }), mdx(\"h1\", null, \"Raspberry Pi\"), mdx(\"ul\", null, mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/Raspberry%20Pi%203%20B+%20%EC%84%9C%EB%B2%84%20%EC%84%B8%ED%8C%85%20(1)\",\n    \"title\": \"Raspberry Pi 3 B+ 서버 세팅 (1)\"\n  }, \"[[Raspberry Pi 3 B+ \\uC11C\\uBC84 \\uC138\\uD305 (1)]]\"), \"\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/Raspberry%20Pi%203%20B+%20%EC%84%9C%EB%B2%84%20%EC%84%B8%ED%8C%85%20(2)\",\n    \"title\": \"Raspberry Pi 3 B+ 서버 세팅 (2)\"\n  }, \"[[Raspberry Pi 3 B+ \\uC11C\\uBC84 \\uC138\\uD305 (2)]]\"), \"\"), mdx(\"li\", {\n    parentName: \"ul\"\n  }, \"\", mdx(\"a\", {\n    parentName: \"li\",\n    \"href\": \"/Raspberry%20Pi%203%20B+%20%EC%84%9C%EB%B2%84%20%EC%84%B8%ED%8C%85%20(3)\",\n    \"title\": \"Raspberry Pi 3 B+ 서버 세팅 (3)\"\n  }, \"[[Raspberry Pi 3 B+ \\uC11C\\uBC84 \\uC138\\uD305 (3)]]\"), \"\")));\n}\n;\nMDXContent.isMDXComponent = true;","parent":{"__typename":"File","id":"194975a3-5b4c-5e38-b1e8-793bfebf94a6","fields":{"slug":"/Raspberry Pi","title":"Raspberry Pi"}}}]},"fields":{"slug":"/Raspberry Pi 3 B+ 서버 세팅 (3)","title":"Raspberry Pi 3 B+ 서버 세팅 (3)"}}},"pageContext":{"id":"b19187da-7c9a-50ad-9c84-7c1640b149f8"}},"staticQueryHashes":["2098632890","2468095761"]}